Data communication networks may be generalized into at least two types: asynchronous and synchronous. Provided such networks remain independent, performance characteristics and transmission latencies are understood, and in many cases predictable. However, in light of the convergence of disparate networks, there arises a need to provide methods and systems for interconnecting asynchronous networks with synchronous networks. Asynchronous networks typically operate under well known protocols, including by not limited to, the Transmission Control Protocol (TCP), Internet Protocol (IP), User Datagram Protocol (UDP) to name but a few. A well known synchronous network approach includes time division multiplexing (TDM), which can allocate particular data channels to predetermined time slots.
One very particular application for interconnecting asynchronous and synchronous systems includes voice data. Conventional voice data examples will now be described.
As data networks proliferate, it is becoming an increasingly desirable goal to integrate transmission of voice and data. Transmitting voice data over a data network (voice over network) can provide advantages over other approaches. Voice over network can take advantage of existing network structures. Further, networks (including the Internet) continue to grow in size and in bandwidth, and so may be more capable of carrying voice and data. Voice over network can be more efficient than data over voice as such systems are typically packet based. In a packet based system, bandwidth can be used as needed. When data is transmitted, a data packet can be sent through the network. When voice is needed, a voice packet can be transmitted through the network.
Voice over networks can also provide additional cost savings, as voice may be transmitted between locations without incurring conventional toll charges. This can be particularly true for systems that transmit voice over the Internet.
Many networks can be “connectionless” networks. Connectionless networks can provide multiple possible paths between source and destination. Consequently, in some cases, voice transmitted over such networks may be more reliable as voice data can reach a destination even if some of the network nodes are not operational. One type of voice of network approach utilizes the Internet protocol (IP), and is often referred to as voice-over-IP (VoIP).
Data networks may take a variety of forms. As noted above, a data network may be a connectionless network, including the Internet. Further, a network may include portions that are overlaid and/or integrate connection-oriented data streams. Such systems include Internet protocol (IP) over asynchronous transfer mode (ATM), IP switching systems, and multiprotocol label switching (MPLS), or similar switching systems.
Voice data transmitted over a network may take a variety of forms. Typically, voice data samples may be “packetized.” Packetizing can include combining a voice data sample payload with corresponding packet “header” information. As is well known, header information can control how a packet is transmitted. Unfortunately, packetization can introduce delay, contributing to overall latency in a voice data sample. Latency can be the delay between the generation of voice data (e.g., speaking) and the endpoint reception of voice data (e.g., hearing).
Voice over network systems can often be conceptualized as including an “egress” path and an “ingress” path for voice data. An egress path may include the various processing steps that receive voice data, packetize such voice data, and then transmit the resulting packet over a network. An ingress path may include the various processing steps that extract voice data from a network packet and eventually provide such voice data to an endpoint.
Various proposals for implementing voice over data networks have been proposed. One general approach is the idea of a network “gateway.” A network gateway can provide access to a network (such as the Internet) for a variety of conventional voice data sources (voice channels). As but one example, a network gateway can be an IP gateway that integrates a PBX with an IP network. In such an arrangement, users may make telephone calls that appear entirely conventional, but are in fact being transmitted over a data network.
According to one conventional approach, a network voice packet can be forwarded to a destination according to conventional protocols, such as TCP/IP. A destination can include conventional network hardware, such as a network interface card, which can receive the packet. A general purpose processor can then extract voice data within the packet (including any decoding/decompressing) and then play the voice data over sound card, or the like. Such computation steps can contribute significantly to latency. Further, such approaches are typically directed to a single voice channel, and not for multiple voice channels.
According to another conventional approach, a network can include a network phone (such as an “IP Phone”). A network phone can have its own network address, and include packet processing and voice data processing hardware. Again, typical IP Phone applications are directed toward single voice channels.
Various conventional approaches to decreasing voice data latency have addressed transmission delays. In particular, some network routers may be capable of giving particular packets priority over others. As but one example, some packet headers can include a “type of service” or “quality of service” field. A network voice packet can be given higher precedence than other packets, thereby reducing latency when compared to other packets. A drawback to such approaches is that all routers/switches in the network must have such an advanced processing capability, and thus can be expensive to implement. Consequently, such an approach may be better suited for enterprise wide area networks (WANs), instead of a larger network structure such as the Internet.
Other approaches may also address transmission latency. In particular, a network transmission route may be essentially reserved for predetermined voice packet flow. One such approach is the Resource ReserVation Protocol (RSVP). RSVP, like the priority approach noted above, can rely on more complex routers and thus can be an expensive solution. In another conventional packet forwarding approach, to help improve the processing of time dependent data, including voice data, other protocols have been proposed. One such protocol is the Real-Time Transport Protocol (RTP). An RTP header can provide sequence and time stamp information than may help assemble voice data once it has been received. RTP is described in detail in Request for Comments (RFC): 1889, “RTP: A Transport Protocol for Real-Time Applications”, Feb. 22, 2001.
While various conventional approaches have addressed reducing transmission delay, it would be desirable to reduce any delay introduced by an egress path. It would be further desirable if such an approach could accommodate multiple voice channels, as well.